package cn.com.blueInfo.HaiYuan.util;

import cn.com.blueInfo.HaiYuan.business.purchase.entity.PurchaseDetail;
import org.springframework.web.multipart.MultipartFile;

import java.util.ArrayList;
import java.util.List;

/**
 * 读取Excel信息
 * @ClassName: ReadExcelInfo
 * @author suxch
 * @date 2020年11月14日  下午4:48:36
 */
public class ReadExcelInfo {

    //private static final String uploadPath = PropertyUtil.getProperty("fileUpDown", "fileUpLoad.path");

    /**
     * 采购单明细行信息Excel导入
     * @Title: importExcelPurchase_Detail
     * @param: @param fileName
     * @param: @param file
     * @param: @return
     * @return: Object
     * @throws
     */
    public static Object importExcelPurchase_Detail(String fileName, MultipartFile file) {
//        int totalRows = 0, totalCells = 0;
//        Workbook workbook = new ReadExcelFile().getExcelAllWorkbook(fileName, file, "");
//        // 得到文件中工作簿的数量
//        workbook.getNumberOfSheets();
//        // 得到第一个sheet
//        Sheet sheet = workbook.getSheetAt(0);
//        // 得到Excel的行数
//        totalRows = sheet.getPhysicalNumberOfRows();
//        // 得到Excel的列数(前提是有行数)
//        if (totalRows >= 1 && sheet.getRow(0) != null) {
//            totalCells = sheet.getRow(0).getPhysicalNumberOfCells();
//        }
        List<PurchaseDetail> purchaseDetailList = new ArrayList<PurchaseDetail>();

//        // 循环Excel行数,从第二行开始。标题不入库
//        for (int r_row = 1; r_row < totalRows; r_row++) {
//            Row row = sheet.getRow(r_row);
//            if (row == null) continue;
//            PurchaseDetail purchaseDetail = new PurchaseDetail();
//            purchaseDetail.setDetailLineNum(r_row);
//            // 循环Excel的列
//            for (int c_cell = 0; c_cell < totalCells; c_cell++) {
//                Cell cell = row.getCell(c_cell);
//                if (null != cell) {
//                    if (c_cell == 0) {// 第一列
//                        String value = "";
//                        if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
//                            value = cell.getStringCellValue();
//                        } else {
//                            return errorTypeStr(r_row, c_cell, "字符");
//                        }
//                        if ("".equals(value)) return errorNullStr(r_row, c_cell);
//                        purchaseDetail.setProductName(value); // 品名
//                    } else if (c_cell == 1) {
//                        String value = "";
//                        if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
//                            value = cell.getStringCellValue();
//                        } else {
//                            return errorTypeStr(r_row, c_cell, "字符");
//                        }
//                        if ("".equals(value)) return errorNullStr(r_row, c_cell);
//                        purchaseDetail.setOriginAddr(value); // 产地
//                    } else if (c_cell == 2) {
//                        String value = "";
//                        if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
//                            value = cell.getStringCellValue();
//                        } else {
//                            return errorTypeStr(r_row, c_cell, "字符");
//                        }
//                        if ("".equals(value)) return errorNullStr(r_row, c_cell);
//                        purchaseDetail.setDrugsType(value); // 种类
//                    } else if (c_cell == 3) {
//                        String value = "";
//                        if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
//                            value = cell.getStringCellValue();
//                        } else {
//                            return errorTypeStr(r_row, c_cell, "字符");
//                        }
//                        if ("".equals(value)) return errorNullStr(r_row, c_cell);
//                        purchaseDetail.setDrugsSpecs(value); // 规格
//                    } else if (c_cell == 4) {
//                        String value = "";
//                        if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
//                            value = cell.getStringCellValue();
//                        } else {
//                            return errorTypeStr(r_row, c_cell, "字符");
//                        }
//                        if ("".equals(value)) return errorNullStr(r_row, c_cell);
//                        purchaseDetail.setUnit(value); // 单位
//                    } else if (c_cell == 5) {
//                        String value = "";
//                        if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
//                            value = cell.getNumericCellValue() + "";
//                            value = value.substring(0, value.indexOf("."));
//                        } else {
//                            return errorTypeStr(r_row, c_cell, "数值");
//                        }
//                        if ("".equals(value)) return errorNullStr(r_row, c_cell);
//                        purchaseDetail.setNumber(Integer.parseInt(value)); // 数量
//                    } else if (c_cell == 6) {
//                        String value = "";
//                        if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
//                            value = cell.getNumericCellValue() + "";
//                        } else {
//                            return errorTypeStr(r_row, c_cell, "数值");
//                        }
//                        if ("".equals(value)) return errorNullStr(r_row, c_cell);
//                        purchaseDetail.setUnitPrice(new BigDecimal(value).setScale(2)); // 单价
//                    } else if (c_cell == 7) {
//                        String value = "";
//                        if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
//                            value = cell.getNumericCellValue() + "";
//                        } else if (cell.getCellType() == HSSFCell.CELL_TYPE_FORMULA) {
//                            cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
//                            value = cell.getNumericCellValue() + "";
//                        } else {
//                            return errorTypeStr(r_row, c_cell, "数值");
//                        }
//                        if ("".equals(value)) return errorNullStr(r_row, c_cell);
//                        purchaseDetail.setMoney(new BigDecimal(value).setScale(2)); // 金额
//                    } else if (c_cell == 8) {
//                        String value = "";
//                        if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
//                            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
//                            value = cell.getStringCellValue();
//                        } else {
//                            return errorTypeStr(r_row, c_cell, "数值");
//                        }
//                        if ("".equals(value)) return errorNullStr(r_row, c_cell);
//                        purchaseDetail.setBatchNum(value); // 生产批号
//                    } else if (c_cell == 9) {
//                        String value = "";
//                        if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
//                            value = cell.getStringCellValue();
//                            if (value.indexOf("-") > 0) {
//                                value = value.replaceAll("-", "/");
//                            }
//                        } else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
//                            value = DateUtil.getFormatDate(cell.getDateCellValue());
//                            value = value.replaceAll("-", "/");
//                        } else {
//                            return errorTypeStr(r_row, c_cell, "日期");
//                        }
//                        if ("".equals(value)) return errorNullStr(r_row, c_cell);
//                        purchaseDetail.setProductionDate(value); // 生产日期
//                    } else if (c_cell == 10) {
//                        String value = "";
//                        if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
//                            value = cell.getNumericCellValue() + "";
//                            value = value.substring(0, value.indexOf("."));
//                        } else {
//                            return errorTypeStr(r_row, c_cell, "数值");
//                        }
//                        if ("".equals(value)) return errorNullStr(r_row, c_cell);
//                        purchaseDetail.setLibraryLocation(value); // 库位
//                    } else if (c_cell == 11) {
//                        String value = "";
//                        if (cell.getCellType() == HSSFCell.CELL_TYPE_BLANK) {
//                            continue;
//                        }
//                        if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
//                            value = cell.getStringCellValue();
//                        } else {
//                            return errorTypeStr(r_row, c_cell, "字符");
//                        }
//                        if (!"".equals(value)) //return errorNullStr(r_row, c_cell);
//                            purchaseDetail.setGoodsLocation(value); // 货位
//                    } else if (c_cell == 12) {
//                        String value = "";
//                        if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
//                            value = cell.getStringCellValue();
//                        } else {
//                            return errorTypeStr(r_row, c_cell, "字符");
//                        }
//                        if ("".equals(value)) return errorNullStr(r_row, c_cell);
//                        purchaseDetail.setQuality(value); // 质量情况
//                    }
//                } else {
//                    continue;
//                }
//            }
//            purchaseDetailList.add(purchaseDetail);
//        }
        return purchaseDetailList;
    }

    /**
     * 类型错误报错
     * @Title: errorTypeStr
     * @param row
     * @param cell
     * @param type
     * @return String
     * @throws
     */
    private static String errorTypeStr(int row, int cell, String type) {
        row = row + 1; //cell = cell +1;
        return "第" + row + "行，第" + cell + "列，不是" + type + "类型，请重新上传";
    }

    /**
     * 不能为空报错
     * @Title: errorNullStr
     * @param row
     * @param cell
     * @return String
     * @throws
     */
    private static String errorNullStr(int row, int cell) {
        row = row + 1; cell = cell +1;
        return "第" + row + "行，第" + cell + "列，不能为空，请重新上传";
    }

}
